﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;

namespace mrp16062010.Veri
{
    class IsMerkezi:ConnectionImporter
    {
        private int isMerkeziId;

        public int IsMerkeziId
        {
            get { return isMerkeziId; }
            set { isMerkeziId = value; }
        }

        private string ad;

        public string Ad
        {
            get { return ad; }
            set { ad = value; }
        }

        private bool montajMi;

        public bool MontajMi
        {
            get { return montajMi; }
            set { montajMi = value; }
        }

        public void Kaydet()
        {
            Connect();
            SqlCommand cmd = new SqlCommand("InsertIsMerkezi", Connection);
            cmd.CommandType = CommandType.StoredProcedure;
            SqlParameter prmReturnValue = cmd.Parameters.Add("@RETURN_VALUE", SqlDbType.Int);
            prmReturnValue.Direction = ParameterDirection.ReturnValue;

            #region Populate Paramete
            SqlParameter prmAd = cmd.Parameters.Add("@Ad", SqlDbType.NVarChar);
            prmAd.Direction = ParameterDirection.Input;
            prmAd.Size = 50;
            prmAd.Value = this.Ad;


            SqlParameter prmMontaj = cmd.Parameters.Add("@Montaj", SqlDbType.TinyInt);
            prmMontaj.Direction = ParameterDirection.Input;
            prmMontaj.Value = this.MontajMi;

            SqlParameter prmIsMerkeziId = cmd.Parameters.Add("@IsMerkeziId", SqlDbType.Int);

            prmIsMerkeziId.Direction = ParameterDirection.Output;
            #endregion

            cmd.ExecuteNonQuery();
            this.IsMerkeziId = int.Parse(prmIsMerkeziId.Value.ToString());
            cmd.Dispose();
            Disconnect();
        }

        public void Sil()
        {
            Connect();
            SqlCommand cmd = new SqlCommand("DeleteIsMerkezi", Connection);
            cmd.CommandType = CommandType.StoredProcedure;
            SqlParameter prmCizelgeId = cmd.Parameters.Add("@IsMerkeziId", SqlDbType.Int);
            prmCizelgeId.Direction = ParameterDirection.Input;
            prmCizelgeId.Value = this.isMerkeziId;
            cmd.ExecuteNonQuery();
            cmd.Dispose();
            Disconnect();
        }

        public void Guncelle()
        {
            Connect();
            SqlCommand cmd = new SqlCommand("UpdateIsMerkezi", Connection);
            cmd.CommandType = CommandType.StoredProcedure;

            SqlParameter prmIsMerkeziId = cmd.Parameters.Add("@IsMerkeziId", SqlDbType.Int);
            prmIsMerkeziId.Direction = ParameterDirection.Input;

            prmIsMerkeziId.Value = this.IsMerkeziId;


            SqlParameter prmAd = cmd.Parameters.Add("@Ad", SqlDbType.NVarChar);
            prmAd.Direction = ParameterDirection.Input;
            prmAd.Size = 50;

            prmAd.Value = this.Ad;


            SqlParameter prmMontaj = cmd.Parameters.Add("@Montaj", SqlDbType.TinyInt);
            prmMontaj.Direction = ParameterDirection.Input;

            prmMontaj.Value = this.montajMi;


            cmd.ExecuteNonQuery();
            cmd.Dispose();
            Disconnect();
        }

        public void Bul()
        {
            Connect();
            SqlCommand cmd = new SqlCommand("SelectIsMerkezi", Connection);
            cmd.CommandType = CommandType.StoredProcedure;
            SqlParameter prmIsMerkeziId = cmd.Parameters.Add("@IsMerkeziId", SqlDbType.Int);
            prmIsMerkeziId.Direction = ParameterDirection.Input;
            prmIsMerkeziId.Value = this.isMerkeziId;
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            DataTable dt = new DataTable();
            da.Fill(dt);

            foreach (DataRow row in dt.Rows)
            {
                this.isMerkeziId = int.Parse(row["IsMerkeziId"].ToString());
                this.ad = row["Ad"].ToString();
                this.montajMi = bool.Parse(row["Montaj"].ToString());

                break;
            }

            cmd.Dispose();
            Disconnect();
        }

        public List<IsMerkezi> Listele()
        {
            Connect();
            SqlCommand cmd = new SqlCommand("SelectIsMerkezisAll", Connection);
            cmd.CommandType = CommandType.StoredProcedure;
            
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            DataTable dt = new DataTable();
            da.Fill(dt);
            List<IsMerkezi> liste = new List<IsMerkezi>();
            foreach (DataRow row in dt.Rows)
            {
                IsMerkezi yeniIM = new IsMerkezi();
                yeniIM.isMerkeziId = int.Parse(row["IsMerkeziId"].ToString());
                yeniIM.ad = row["Ad"].ToString();
                yeniIM.montajMi = bool.Parse(row["Montaj"].ToString());
                liste.Add(yeniIM);
            }

            cmd.Dispose();
            Disconnect();
            return liste;
        }
    }
}
